[doc] Les multi-ensembles - Type abstrait
[doc] Les multi-ensembles - Type abstrait
Lien Moodle : https://moodle.epita.fr/mod/page/view.php?id=108776
Contenu du cours
types
multiensemble
utilise
booléen, élément, entier
opérations
multiensemblevide : → multiensemble
ajouter : élément x multiensemble → multiensemble
supprimer : élément x multiensemble → multiensemble
_∈_ : élément x multiensemble → booléen
card : multiensemble → entier
nboccurrences : élément x multiensemble → élément
axiomes
(x ∈ multiensemblevide) = faux
x = y ⇒ (x ∈ ajouter(y, me)) = vrai
x ≠ y ⇒ (x ∈ ajouter(y, me)) = (x ∈ me)
nboccurrences(x, me) ≤ 1 ⇒ (x ∈ supprimer(x, me)) = faux
x ≠ y ⇒ (x ∈ supprimer(y, me)) = (x ∈ me)
card(multiensemblevide) = 0
card(ajouter(x, me)) = card(me) + 1
x ∈ me = vrai ⇒ card(supprimer(x, me)) = card(me) - 1
x ∈ me = faux ⇒ card(supprimer(x, me)) = card(me)
nboccurrences(x, multiensemblevide) = 0
x = y ⇒ nboccurrences(x, ajouter(y, me)) = nboccurrences(x, me) + 1
x ≠ y ⇒ nboccurrences(x, ajouter(y, me)) = nboccurrences(x, me)
nboccurrences(x, me) = 0 ⇒ nboccurrences(x, supprimer(x, me)) = 0
nboccurrences(x, me) ≥ 1 ⇒ nboccurrences(x, supprimer(x, me)) = nboccurrences(x, me) - 1
x ≠ y ⇒ nboccurrences(x, supprimer(y, me)) = nboccurrences(x, me)
avec
multiensemble me
élément x, y